Чисельні методи розв`язання систем лінійних рівнянь

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Курсова робота
з інформатики на тему:
«Чисельні методи рішення
систем лінійних рівнянь »
Виконав:
студент 06-ІСТ, Фадєєва Т.В.
Перевірив:
Ловигіна М.Б.
м. Павлово
2008

Зміст.
I Теоретична частина
1. Введення ................................................. ................... 3
2. Чисельні методи ................................................ .. 6
1) Матричний метод ........................................ 6
2) Метод Крамера ............................................. 9
3) Метод Гауса ... ... ... ... ............................... 12
4) Ітерації для лінійних систем .... ... .. ... .. 17
a) Ітерація Якобі .. ... ... ... ... ... ... ... ... .. 18
b) Ітерація Гаусса - Зейделя .. ... ... ... ... 20
II Практична частина
1) Матричний метод ........................................ 22
2) Метод Крамера ............................................. 24
3) Метод Гауса ... ... ........................................ 26
4) Лістинг програми. ... ... ... ... ... ... ... ... ... .28
III Користь запровадження розрахунків. ... ... ... ... ... ... ... ... ... ... ... ... .65
IV Література ... ... ... .. ........................................... .................... 66
I. Теоретична частина.
Введення.
Лінійна алгебра - частина алгебри, що вивчає векторні (лінійні) простору і їх підпростору, лінійні відображення (оператори), лінійні, Білінійні, і квадратичні функції на векторних просторах.
Лінійна алгебра, чисельні методи - розділ обчислювальної математики, присвячений математичному опису і дослідженню процесів чисельного рішення задач лінійної алгебри.
Серед завдань лінійної алгебри найбільше значення мають дві: рішення системи лінійних алгебраїчних рівнянь визначення власних значень і власних векторів матриці. Інші часто зустрічаються завдання: звернення матриці, обчислення визначника і т.д.
Будь-який чисельний метод лінійної алгебри можна розглядати як деяку послідовність виконання арифметичних операцій над елементами вхідних даних. Якщо за будь-яких вхідних даних чисельний метод дозволяє знайти рішення задачі за кінцеве число арифметичних операцій, то такий метод називається прямим. У протилежному випадку чисельний метод називається ітераційним. Прямі методи - це такі, як метод Гаусса, метод облямівки, метод поповнення, метод спряжених градієнтів та ін Ітераційні методи - це метод простої ітерації, метод обертань, метод змінних напрямків, метод релаксації і ін Тут будуть розглядатися матричний метод, метод Гаусса і метод Крамера.
У даній роботі будуть розглянуті чисельні методи в електронних таблицях Excel і програмі MathCAD, Microsoft Visual Basic.
MathCAD.
Програма MathCAD за своїм призначенням дозволяє моделювати в електронному документі науково-технічні, а також економічні розрахунки у формі, досить близькою до загальноприйнятих ручним розрахунками. Це спрощує складання програми розрахунку, автоматизує перерахунок і побудова графічних ілюстрацій подібно електронних таблиць Excel, документування результатів як в текстовому редакторі Word.
Програма Mathcad відома за легкість, з якою математичні рівняння, текст, і графіка можуть бути об'єднані в одному документі. Крім того, обчислювальні здатності Mathcad поширюються від складання стовпця чисел до вирішення інтегралів і похідних, рішення систем рівнянь і більше.
Перевагою MathCAD є також наявність в його складі електронних книг. Одна з них - підручник по самій програмі, інші - довідник з різних розділів математики, фізики, радіоелектроніки та ін
Microsoft Office Excel.
Якщо ж говорити про програму Excel, яка є однією з найбільш відомих в обробці електронних таблиць, то без перебільшення можна стверджувати, що її можливості практично невичерпні.
Обробка тексту, управління базами даних - програма настільки потужна, що в багатьох випадках перевершує спеціалізовані програми - редактори або програми баз даних. Таке різноманіття функцій може спочатку навіть відлякувати, ніж змусити застосовувати їх на практиці. Але в міру набуття досвіду користувач зможе оцінити майже безмежні можливості Excel.
За всю історію табличних розрахунків із застосуванням персональних комп'ютерів вимоги користувачів до подібних програм істотно змінилися. Спочатку основний акцент у такій програмі, як, наприклад, Visi Calc, робився на обчислювальні функції. Сьогодні, положення змінилося. Поряд з інженерними й бухгалтерськими розрахунками організація і графічне зображення даних набуває все більшого значення. Крім того, різноманіття функцій, пропоноване такою обчислювальною й графічною програмою, не повинне ускладнювати роботу користувача. Програми для Windows створюють для цього ідеальні передумови.
Останнім часом багато якраз перейшли на використання Windows як свою користувальницького середовища. Як наслідок, багато фірм, що створюють програмне забезпечення, почали пропонувати велику кількість програм для Windows.
Visual Basic.
Microsoft Visual Basic - це потужна система програмування, що дозволяє швидко і ефективно створювати додатки для Microsoft Windows. На відміну від Excel та MathCAD це найбільш зручна програма для розв'язання систем лінійних рівнянь. Простий інтерфейс, що дозволяє легко переключатися з проекту форми на сам код програми.

Зручне вікно для коду самої програми:

Чисельні методи.
Розв'язність системи лінійних рівнянь.
Коли ми говоримо про головну матриці системи лінійних рівнянь, то завжди маємо на увазі квадратну матрицю nЧn, тобто матрицю з однаковою кількістю рядків і стовпців. Це важливо.
Якщо, наприклад, кількість рядків (кількість рівнянь у системі) буде менше, ніж кількість стовпців (фактично, кількості невідомих), то система буде невизначеною, тобто ми не зможемо однозначно визначити всі невідомі (вирішити систему).
Але це не єдине обмеження. З векторної алгебри відомо, що система лінійних рівнянь має рішення (однозначне) тоді і тільки тоді, коли її головний визначник не дорівнює нулю: Δ ≠ 0.
Розглянемо випадок, коли визначник системи дорівнює нулю. Тут можливі два варіанти:
1. Δ = 0 і кожен з додаткових визначників Δx i = 0. Це має місце тільки тоді, коли коефіцієнти при невідомих x i пропорційні, тобто кожне рівняння системи виходить з першого рівняння множенням обох його частин на число k. При цьому система має незліченну безліч рішень.
2. Δ = 0 і хоча б один додатковий визначник Δx i ≠ 0. Це має місце тільки тоді, коли коефіцієнти при всіх невідомих x i, пропорційні. При цьому виходить система з суперечливих рівнянь, яка не має рішень.
Матричний метод розв'язання систем лінійних рівнянь.
Нехай дана система лінійних рівнянь:

Розглянемо матрицю, складену з коефіцієнтів при невідомих:

Вільні члени і невідомі можна записати у вигляді матриці стовпців:

Тоді, використовуючи правило множення матриць, цю систему рівнянь можна записати так:

або
A · x = b. (1)
Рівність (1) називається матричним рівнянням або системою рівнянь в матричному вигляді.
Матриця А коефіцієнтів при невідомих називається головною матрицею системи.
Іноді розглядають також розширену матрицю системи, тобто головну матрицю системи, доповнену стовпцем вільних членів, яку записують у наступному вигляді:

Будь-яку лінійну систему рівнянь можна записати в матричному вигляді. Наприклад, нехай дано систему:

Ця система з двох рівнянь з трьома невідомими - x, y,. У вищій математиці можна розглядати системи з дуже великого числа рівнянь з великою кількістю невідомих і тому невідомі прийнято позначати тільки буквою х, але з індексами:

Запишемо цю систему в матричному вигляді:

Тут головна матриця системи:

Розширена матриця буде мати вигляд:

Рішення матричних рівнянь.
Матричні рівняння вирішуються за допомогою зворотних матриць. Рівняння вирішується таким чином. Нехай матриця А - невироджена (D ≠ 0), тоді існує обернена матриця А-1. Помноживши на неї обидві частини матричного рівняння, маємо А-1 (АХ) = А-1В. Використовуючи сочетательних закон множення, перепишемо це рівність у вигляді
(А-1А) Х = А-1В.
Оскільки А-1 А = Е і ЕХ = Х, знаходимо:
Х = А-1В.
Таким чином, щоб вирішити матричне рівняння, потрібно:
1. Знайти обернену матрицю А-1.
2. Знайти добуток оберненої матриці А-1 на матрицю стовпчик вільних членів В, т. е А-1В.
Користуючись визначенням рівних матриць, записати відповідь.
При цьому власне знаходження оберненої матриці - процес досить трудомісткий і його програмування навряд чи можна назвати елементарним завданням. Тому на практиці частіше застосовують чисельні методи вирішення систем лінійних рівнянь.
До чисельних методів розв'язання систем лінійних рівнянь відносять такі як: метод Гаусса, метод Крамера, ітеративні методи. У методі Гаусса, наприклад, працюють над розширеною матрицею системи. А в методі Крамера - з визначниками системи, утвореними за спеціальним правилом.
Метод Крамера.
При вирішенні систем лінійних рівнянь за методом Крамера послідовно виконується наступний алгоритм:
1. Записують систему в матричному вигляді (якщо це ще не зроблено).
2. Обчислюють головний визначник системи:

3. Обчислюють всі додаткові визначники системи:

4. Якщо головний визначник системи не дорівнює нулю, то виконують пункт 5. Інакше розглядають питання про можливість розв'язання даної системи (має незліченну безліч рішень або не має рішень). Знаходять значення всіх невідомих за формулами Крамера для розв'язання системи n лінійних рівнянь з n невідомими, які мають вигляд:

Приклад 1
Вирішити за методом Крамера систему з трьох рівнянь з трьома невідомими:

Рішення
Запишемо головний та побічні визначники системи:

Обчислимо ці визначники:
Δ = 3 * 4 * (-4) +7 * (-3) * 5 + (-2) * (-8) * 5-5 * 4 * 5-3 * (-3) * (-8) - 7 * (-2) * (-4) = 48-105 +80-100-72-56 = 128-333 = -205.
Δ1 = -112 + (-45) + (-192) - (-240) -24-168 = -112-45-192 +240-24-168 = 240-541 = -301.
Δ2 = -36-420-280-75 +196-288 = 196-1099 = -903.
Δ3 = -144-147-30-140 +27-168 = -629 +27 = -602.
Головний визначник системи не дорівнює нулю. Знаходимо невідомі за формулами Крамера.
Підставимо знайдені значення визначників у формули Крамера:
x1 = Δ1 / Δ = -301 / (-205) = 1,468292682927 ≈ 1,47;
x2 = Δ2 / Δ = -903 / (-205) = 4,40487804878 ≈ 4,4;
x3 = Δ3 / Δ = -602 / (-205) = 2,936585365854 ≈ 2,93.
Висновок.
При вирішенні систем лінійних рівнянь за методом Крамера використовуються формули, в яких беруть участь як головний, так і додаткові визначники системи:

Нагадаємо, що головним визначником системи називається визначник головною матриці системи, складеної з коефіцієнтів при невідомих:

Якщо в головному визначнику системи замінити по черзі стовпці коефіцієнтів при x 1, x 2, ... x n на стовпець вільних членів, то отримаємо n додаткових визначників (для кожного з n невідомих):

При цьому важливим є питання про можливість розв'язання даної системи, який вирішується порівнянням головного і додаткових визначників системи з нулем:

Метод Гауса - прямий і зворотний хід.
Розглянемо метод Гаусса. Наприклад, нехай дана розширена матриця деякої системи m лінійних рівнянь cn невідомими:

Будемо вважати, що a 11 ≠ 0 (якщо це не так, то досить переставити першу і деяку іншу рядок розширеної матриці місцями). Проведемо такі елементарні перетворення:
C 2 - (a 21 / a 11) * C 1,
...
C m - (a m1 / a 11) * C 1,
тобто Ci-(a i1 / a 11) * C 1, i = 2, 3, ..., m.
Т. е. від кожного рядка розширеної матриці (крім першої) віднімаємо перший рядок, помножену на частку від ділення першого елемента цього рядка на діагональний елемент а 11.
У результаті отримаємо матрицю:

Тобто перший рядок залишилася без змін, а в стовпці під а 1 1 на всіх місцях опинилися нулі. Звернемо увагу, що перетворення торкнулися всіх елементів рядків, починаючи з другої, всієї розширеної матриці системи.
Тепер наше завдання полягає в тому, щоб отримати нулі під всіма діагональними елементами матриці А - a ij, де I = j.
Повторимо наші елементарні перетворення, але вже для елемента α 22.
C 1 - (a 12 / α 22) * C 2,
...
C m - (α m2 / α 22) * C 2,
тобто C i - (α i2 / α 22) * C 2, i = 3, ..., m.
Т. е. від кожного рядка розширеної матриці (тепер окрім першої і другої) віднімаємо другий рядок, помножену на частку від ділення першого елемента цієї (поточної) рядки на діагональний елемент α 22.
Такі перетворення тривають до тих пір, поки матриця не приведеться до верхнє - трикутникове виду. Тобто під головною діагоналлю не виявляться всі нулі:

Згадавши, що кожен рядок являє собою одне з рівнянь лінійної системи рівнянь, легко помітити, що останнім m-е рівняння приймає вигляд:
γ mn * x n = δ m.
Звідси легко можна знайти значення першого кореня - x n = δ m / γ mn.
Підставивши це значення в попереднє m-1-е рівняння, легко отримаємо значення x n-перше кореня.
Таким чином, піднімаючись до самого верху зворотним ходом методу Гауса, ми послідовно знайдемо всі корені системи рівнянь.
Приклад 1
Розглянемо систему рівнянь:

Головний визначник даної системи:

Δ = [1 * (-4) * (-2) +2 * 2 * 1 + (-1) * (-1) * (-1)] - [1 * (-4) * (-1) + 2 * (-1) * (-2) +2 * (-1) * 1] = [8 +4-1] - [4 +4-2] = 11-6 = 5,
тобто Δ ≠ 0.
Тобто система визначена і можна вирішити. Вирішимо її за методом Гауса.
Проведемо прямий хід методу Гаусса, виписавши попередньо розширену матрицю системи:

Отримаємо нулі під головною діагоналлю в першому стовпці розширеної матриці. Для отримання нуля в елементі a21 (тобто під діагоналлю в другому рядку матриці) другий рядок матриці перетворимо за формулою C 2 - (a 21 / a 11) * C 1 = C 2 - (2 / 1) * C 1 = C 2 -2 * C 1:

Аналогічно робимо і з елементом А31 (тобто під діагоналлю в третьому рядку матриці). Третій рядок матриці перетворимо за формулою C 3 - (a 31 / a 11) * C 1 = C 3 - (-1 / 1) * C 1 = C 3 + C 1:

Таким чином, ми отримали нулі під головною діагоналлю в першому стовпці розширеної матриці. Залишилося одержати нуль під головною діагоналлю в другому стовпці матриці, тобто на місце елемента А32. Для цього третій рядок матриці перетворимо за формулою C 3 - (a 32 / a 22) * C 2 = C 3 - (1/-2) * C 2 = C 3 +1 / 2C 2:

Таким чином, провівши прямий хід методу Гаусса, ми отримали розширену матрицю системи, приведену до верхньо-трикутникове увазі:

Ця матриця еквівалентна системі:

Зворотним ходом методу Гауса знайдемо коріння системи. З останнього рівняння знайдемо корінь х 3:
-5/2x 3 = 3 / 2,
x 3 = (3 / 2): (-5 / 2) = 3 / 2 * (-2 / 5) = -3 / 5.
Корінь x 3 = -3 / 5 знайдений. Підставимо його у верхнє (друге) рівняння системи (-2x 2-3x 3 = 1):
-2x 2 -3 (-3 / 5) = 1,
-2x 2 +9 / 5 = 1,
-2x 2 = 1-9/5,
-2x 2 = -4 / 5,
x 2 = (-4 / 5): (-2) = (-4 / 5) * (-1 / 2) = 2 / 5.
Корінь x 2 = 2 / 5 знайдений. Підставимо його і корінь х 3 у верхнє (перше) рівняння системи (x 1-x 2 + x 3 = 0):
x 1 -2 / 5 + (-3 / 5) = 0,
x 1 -5 / 5 = 0,
x 1 = 5 / 5 = 1.
Перевірка:

т. е.

т. е.

і т. д.
Висновок.
Отже, метод Гаусса (або, інакше, метод послідовного виключення невідомих) полягає в наступному:
1. Шляхом елементарних перетворень систему рівнянь призводять до еквівалентної їй системі з верхньо-трикутною матрицею. Ці дії називають прямим ходом.
2. З отриманої трикутної системи змінні знаходять за допомогою послідовних підстановок (зворотний хід).
3. При цьому всі перетворення проводяться над так званої розширеної матрицею системи, яку і призводять до верхнє - трикутникове увазі в прямому ході методу.

Ітерація для лінійних систем.
Спосіб ітерацій дає можливість одержати послідовність наближених значень, що сходяться до точного розв'язку системи, подібно до того, як це робиться для одного рівняння.
Для визначеності обмежимося системою з чотирьох рівнянь із чотирма невідомими (система четвертого порядку), яку запишемо у вигляді:

Дозволимо перше рівняння системи відносно х 1:
х 1 = (-a 12 / a 11) х 2-a 13 / a 11 х 3-a 14 / a 11 х 4-a 15 / a 11.
Потім дозволимо друге рівняння відносно х 2 і т. д. Тоді систему можна переписати у вигляді:

де α =-a ik / a ii, i = 1, 2, 3, 4; k = 1, 2, 3, 4, 5.
Система є окремим випадком запису види:

При цьому лінійна функція L 1 фактично не залежить від х 1.
Задамо будь-які початкові значення невідомих (нульові наближення):
х 1 (0), х 2 (0), х 3 (0), х 4 (0).
Підставляючи ці значення у праві частини системи (*), отримаємо перші наближення:

Отримані перші наближення можуть бути так само використані для отримання другого, третього і т. д. наближень. Тобто можна записати:

Умови збіжності ітераційного процесу.
Встановимо умови, виконання яких забезпечить збіжність виходять наближень до істинного (точному) рішенню системи х 1, х 2, х 3, х 4.
Не вдаючись у подробиці, скажемо, що для того щоб ітераційний процес сходився до точного розв'язання, достатньо, щоб всі коефіцієнти системи були малі порівняно з діагональними.
Цю умову можна сформулювати й більш точно:
Для збіжності процесу ітерацій достатньо, щоб у кожному стовпці сума відносин коефіцієнтів системи до діагональних елементів, узятим з того ж рядка, була строго менше одиниці:

Ітерація Якобі.
Розглянемо систему лінійних рівнянь:

Рівняння можна записати у вигляді:

Це дозволяє запропонувати наступний ітераційний процес:

або (інший вид запису)

Покажемо, що якщо почати з точки P 0 = (х 1 (0), х 2 (0), х 3 (0), х 4 (0)) = (1, 2, 2), то ітерація (3) сходиться до вирішення (2, 4, 3). Підставимо х 1 = 1, х 2 = 2, х 2 = 2 в праву частину кожного рівняння з (3), щоб отримати нові значення:

Нова точка P 1 = (х 1 (1), х 2 (1), х3 (1), х 4 (1)) = (1.75, 3.375, 3), ближче, ніж P 0.
Ітерація, що використовує (3), генерує послідовність точок {P k}, що сходиться до вирішення (2, 4, 3):
k
х1 (k)
х2 (k)
х3 (k)
0
1.0
2.0
2.0
1
1.75
3.375
3.0
2
1.84375
3.875
3.025
3
1.9625
3.925
2.9625
4
1.990625
3.9765625
3.0
5
1.99414063
3.9953125
3.0009375
...
...
...
...
15
1.99999993
3.99999985
3.0009375
...
...
...
...
19
2.0
4.0
3.0
Цей процес називається итерацией Якобі і може використовуватися для вирішення певних типів лінійних систем.
Ітерація Гауса-Зейделя.
Процес ітерації Якобі іноді можна модифікувати для прискорення збіжності.
Відзначимо, що ітеративний процес Якобі виробляє три послідовності - {х 1 (k)},2 (k)},3 (k)},4 (k)}. Здається розумним, що х 1 (k +1) може бути використано замість х 2 (k). Аналогічно х 1 (k +1) і х 2 (k +1) можна використовувати в обчисленні х 3 (k +1). Наприклад, для рівнянь із системи (1) це дасть такий вигляд ітераційного процесу Гауса-Зейделя, використовує (3 *):

Такий ітераційний процес дасть результати:
k
х 1 (k)
х 2 (k)
х 3 (k)
0
1.0
2.0
2.0
1
1.75
3.75
2.95
2
1.95
3.96875
2.98625
3
1.995625
3.99609375
2.99903125
...
...
...
...
8
1.99999983
3.99999988
2.99999996
9
1.99999998
3.99999999
3.0
10
2.0
4.0
3.0
Т. е. до точного розв'язання ми прийшли вже на 10-му кроці ітерації, а не на 19, як у ітерації Якобі.
Висновок.
1. Спосіб ітерацій дає можливість одержати послідовність наближених значень, що сходяться до точного розв'язку системи. Для цього система приводиться до вигляду (для випадку системи з чотирьох рівнянь):

Ці формули якраз і задають власне ітераційний процес.
2. При цьому щоб ітераційний процес сходився до точного розв'язання, достатньо, щоб всі коефіцієнти системи були малі порівняно з діагональними.
Цю умову можна сформулювати й більш точно:
Для збіжності процесу ітерацій достатньо, щоб у кожному стовпці сума відносин коефіцієнтів системи до діагональних елементів, узятим з того ж рядка, була строго менше одиниці:

3. Слід так само сказати, що ітераційний процес може проводитися як у вигляді ітерації Якобі, так і у вигляді ітерації Гауса-Зейделя. В останньому випадку збіжність ітераційного процесу може істотно поліпшитися.

II. Практична частина.
1) Метод оберненої матриці.
Метод оберненої матриці
x 1
x 2
x 3
x 4
12
-4
0
6
2
A =
-4
21
5
3
B =
4
-3
2
-22
1
-2
-2
-3
5
23
4
0,083
0,013
-0,002
-0,023
A -1 =
0,016
0,048
0,009
-0,011
-0,009
0,003
-0,044
0,004
0,011
0,007
0,010
0,039
x =
0,129
0,165
0,097
0,186


2) Метод Крамера.
Метод Крамера
x 1
x 2
x 3
x 4
12
-4
0
6
2
A =
-4
21
5
3
B =
4
-3
2
-22
1
-2
-2
-3
5
23
4
'A' =
-134088
2
-4
0
6
A 1 =
4
21
5
3
-2
2
-22
1
4
-3
5
23
'A 1' =
-17296
x 1 =
0,129
12
2
0
6
A 2 =
-4
4
5
3
-3
-2
-22
1
-2
4
5
23
'A 2' =
-22188
x 2 =
0,165
12
-4
2
6
A 3 =
-4
21
4
3
-3
2
-2
1
-2
-3
4
23
'A 3' =
-12980
x 3 =
0,097
12
-4
0
2
A 4 =
-4
21
5
4
-3
2
-22
-2
-2
-3
5
4
'A 4' =
-24896
x 4 =
0,186
x =
0,129
0,165
0,097
0,186


3) Метод Гауса.
Метод Гауса
x 1
x 2
x 3
x 4
12
-4
0
6
2
A =
-4
21
5
3
B =
4
-3
2
-22
1
-2
-2
-3
5
23
4
'A' =
-134088
1,000
-0,333
0,000
0,500
0,167
-4,000
21,000
5,000
3,000
4,000
-3,000
2,000
-22,000
1,000
-2,000
-2,000
-3,000
5,000
23,000
4,000
1,000
-0,333
0,000
0,500
0,167
0,000
25,333
5,000
5,000
4,667
0,000
1,000
-22,000
2,500
-1,500
0,000
-3,667
5,000
24,000
4,333
1,000
-0,333
0,000
0,500
0,167
0,000
1,000
0,197
0,197
0,184
0,000
0,000
-22,197
2,303
-1,684
0,000
0,000
5,724
24,724
5,009
1,000
-0,333
0,000
0,500
0,167
0,000
1,000
0,197
0,197
0,184
0,000
0,000
1,000
-0,104
0,076
0,000
0,000
0,000
25,317
4,574
x =
0,120
0,130
0,095
0,181

4) Лістинг програми (Метод Крамера, Метод Гауса, Метод оберненої матриці).
Begin VB. Form frmAriel
BorderStyle = 1 'Єдиний Фіксований
Caption = "Рішення систем лінійних рівнянь"
   ClientHeight = 6315
ClientLeft = 4365
ClientTop = 2430
ClientWidth = 7815
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
LinkTopic = "Форма 1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6315
ScaleWidth = 7815
Begin VB.TextBox txtMOMZ
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 45
Top = 5520
Width = 975
End
Begin VB.TextBox txtMOMY
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2640
TabIndex = 44
Top = 5520
Width = 975
End
Begin VB.TextBox txtMOMX
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,0000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1320
TabIndex = 43
Top = 5520
Width = 975
End
Begin VB.TextBox txtMGZ
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 42
Top = 4800
Width = 975
End
Begin VB.TextBox txtMGY
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2640
TabIndex = 41
Top = 4800
Width = 975
End
Begin VB.TextBox txtMGX
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,0000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1320
TabIndex = 40
Top = 4800
Width = 975
End
Begin VB.TextBox txtMKZ
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 39
Top = 4080
Width = 975
End
Begin VB.TextBox txtMKY
Alignment = 2 'Вирівнювання по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2640
TabIndex = 38
Top = 4080
Width = 975
End
Begin VB.TextBox txtMKX
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,0000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
DataMember = "0,0000"
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1320
Locked = -1 'True
TabIndex = 37
Top = 4080
Width = 975
End
Begin VB.TextBox txtA33
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 4440
TabIndex = 30
Top = 2640
Width = 1095
End
Begin VB.TextBox txtA23
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 4440
TabIndex = 29
Top = 2040
Width = 1095
End
Begin VB.TextBox txtA13
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 4440
TabIndex = 28
Top = 1440
Width = 1095
End
Begin VB.TextBox txtA32
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2520
TabIndex = 24
Top = 2640
Width = 1095
End
Begin VB.TextBox txtA22
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2520
TabIndex = 23
Top = 2040
Width = 1095
End
Begin VB.TextBox txtA12
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2520
TabIndex = 22
Top = 1440
Width = 1095
End
Begin VB.CommandButton cmdExit
Caption = "Вихід"
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 5400
TabIndex = 18
Top = 5520
Width = 2055
End
Begin VB.CommandButton cmdCount
Caption = "Обчислити"
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 5400
TabIndex = 17
Top = 4680
Width = 2055
End
Begin VB.CommandButton cmdClean
Caption = "Очистити"
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
Height = 495
Left = 5400
TabIndex = 16
Top = 3840
Width = 2055
End
Begin VB.TextBox txtB3
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6480
TabIndex = 12
Top = 2640
Width = 1095
End
Begin VB.TextBox txtB2
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6480
TabIndex = 11
Top = 2040
Width = 1095
End
Begin VB.TextBox txtB1
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6480
TabIndex = 10
Top = 1440
Width = 1095
End
Begin VB.TextBox txtA31
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 600
TabIndex = 9
Top = 2640
Width = 1095
End
Begin VB.TextBox txtA21
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 600
TabIndex = 8
Top = 2040
Width = 1095
End
Begin VB.TextBox txtA11
Alignment = 2 'Вирівнювання по Центру
BeginProperty DataFormat
Type = 1
Format = "0,0000"
HaveTrueFalseNull = 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 14.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 600
TabIndex = 7
Top = 1440
Width = 1095
End
Begin VB.Line Рядок 3
X1 = 5760
X2 = 5760
Y1 = 1080
Y2 = 3360
End
Begin VB.Label Мітка 29
Caption = "Z"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 4920
TabIndex = 36
Top = 1080
Width = 255
End
Begin VB.Label Мітка 28
Caption = "Y"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 3000
TabIndex = 35
Top = 1080
Width = 255
End
Begin VB.Label Мітка 27
Caption = "X"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1080
TabIndex = 34
Top = 1080
Width = 255
End
Begin VB.Label Мітка 23
Caption = "Z"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 4440
TabIndex = 33
Top = 3480
Width = 255
End
Begin VB.Label Мітка 22
Caption = "Y"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 3120
TabIndex = 32
Top = 3480
Width = 255
End
Begin VB.Label Мітка 21
Caption = "X"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 1800
TabIndex = 31
Top = 3480
Width = 255
End
Begin VB.Label Мітка 20
Caption = "А 33"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 27
Top = 2640
Width = 375
End
Begin VB.Label Мітка 19
Caption = "А 23"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 26
Top = 2040
Width = 375
End
Begin VB.Label Мітка 18
Caption = "А 13"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3840
TabIndex = 25
Top = 1440
Width = 375
End
Begin VB.Label Мітка 17
Caption = "А 32"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 21
Top = 2640
Width = 375
End
Begin VB.Label Мітка 16
Caption = "А 22"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 20
Top = 2040
Width = 375
End
Begin VB.Label Мітка 15
Caption = "А 12"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1920
TabIndex = 19
Top = 1440
Width = 375
End
Begin VB.Line Рядок 2
X1 = 0
X2 = 7800
Y1 = 3360
Y2 = 3360
End
Begin VB.Label Мітка 12
      Alignment = 2 'Вирівнювання по Центру
Caption = "Метод оберненої матриці"
      BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 855
Left = 0
TabIndex = 15
Top = 5280
Width = 1095
End
Begin VB.Label Мітка 11
      Alignment = 2 'Вирівнювання по Центру
Caption = "Метод Гауса"
      BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 0
TabIndex = 14
Top = 4560
Width = 1095
End
Begin VB.Label Мітка 10
      Alignment = 2 'Вирівнювання по Центру
Caption = "Метод Крамера"
      BeginProperty Font
Name = "Times New Roman"
Size = 11.25
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 615
Left = 0
TabIndex = 13
Top = 3840
Width = 1095
End
Begin VB.Label Мітка 7
Caption = "У 3"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 6
Top = 2640
Width = 255
End
Begin VB.Label Мітка 6
Caption = "У 2"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 5
Top = 2040
Width = 255
End
Begin VB.Label Мітка 5
Caption = "У 1"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 6000
TabIndex = 4
Top = 1440
Width = 255
End
Begin VB.Label Мітка 4
Caption = "А 31"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 3
Top = 2640
Width = 375
End
Begin VB.Label Мітка 3
Caption = "А 21"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 2
Top = 2040
Width = 375
End
Begin VB.Label Мітка 2
Caption = "А 11"
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 0
TabIndex = 1
Top = 1440
Width = 375
End
Begin VB.Label Мітка 1
Caption = $ "frmSlay.frx": 0000
BeginProperty Font
Name = "Times New Roman"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 855
Left = 120
TabIndex = 0
Top = 120
Width = 7575
End
End
Attribute VB_Name = "frmAriel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub cmdClean_Click ()
Dim з As Byte
з = MsgBox ("Хочете очистити?", 33, "Очищення")
If з = 1 Then
txtA11.Text = ""
txtA12.Text = ""
txtA13.Text = ""
txtA21.Text = ""
txtA22.Text = ""
txtA23.Text = ""
txtA31.Text = ""
txtA32.Text = ""
txtA33.Text = ""
txtB1.Text = ""
txtB2.Text = ""
txtB3.Text = ""
txtMKX.Text = ""
txtMGX.Text = ""
txtMOMX.Text = ""
txtMKY.Text = ""
txtMGY.Text = ""
txtMOMY.Text = ""
txtMKZ.Text = ""
txtMGZ.Text = ""
txtMOMZ.Text = ""
End If
End Sub
Private Sub cmdCount_Click ()
If (Val (txtA11) * Val (txtA22) * Val (txtA33) + Val (txtA12) * Val (txtA23) * Val (txtA31) + Val (txtA21) * Val (txtA32) * Val (txtA13) - Val (txtA13 ) * Val (txtA22) * Val (txtA31) - Val (txtA12) * Val (txtA21) * Val (txtA33) - Val (txtA23) * Val (txtA32) * Val (txtA11)) = 0 Then
Dim g As Byte
g = MsgBox ("Вирішити дану систему методом Крамера та методом зворотної матриці неможливо", 32, "Визначник системи дорівнює 0")
Else
ds = (Val (txtA11) * Val (txtA22) * Val (txtA33) + Val (txtA12) * Val (txtA23) * Val (txtA31) + Val (txtA21) * Val (txtA32) * Val (txtA13) - Val ( txtA13) * Val (txtA22) * Val (txtA31) - Val (txtA12) * Val (txtA21) * Val (txtA33) - Val (txtA23) * Val (txtA32) * Val (txtA11))
dx = (Val (txtB1) * Val (txtA22) * Val (txtA33) + Val (txtA12) * Val (txtA23) * Val (txtB3) + Val (txtB2) * Val (txtA32) * Val (txtA13) - Val ( txtA13) * Val (txtA22) * Val (txtB3) - Val (txtA12) * Val (txtB2) * Val (txtA33) - Val (txtA23) * Val (txtA32) * Val (txtB1))
dy = (Val (txtA11) * Val (txtB2) * Val (txtA33) + Val (txtB1) * Val (txtA23) * Val (txtA31) + Val (txtA21) * Val (txtB3) * Val (txtA13) - Val ( txtA13) * Val (txtB2) * Val (txtA31) - Val (txtB1) * Val (txtA21) * Val (txtA33) - Val (txtA23) * Val (txtB3) * Val (txtA11))
dz = (Val (txtA11) * Val (txtA22) * Val (txtB3) + Val (txtA12) * Val (txtB2) * Val (txtA31) + Val (txtA21) * Val (txtA32) * Val (txtB1) - Val ( txtB1) * Val (txtA22) * Val (txtA31) - Val (txtA12) * Val (txtA21) * Val (txtB3) - Val (txtB2) * Val (txtA32) * Val (txtA11))
txtMKX.Text = (dx / ds)
txtMKY.Text = (dy / ds)
txtMKZ.Text = (dz / ds)
txtMOMX.Text = (((Val (txtA22) * Val (txtA33) - Val (txtA23) * Val (txtA32)) / ds) * Val (txtB1) + ((Val (txtA13) * Val (txtA32) - Val ( txtA12) * Val (txtA33)) / ds) * Val (txtB2) + ((Val (txtA12) * Val (txtA23) - Val (txtA13) * Val (txtA22)) / ds) * Val (txtB3))
txtMOMY.Text = (((Val (txtA23) * Val (txtA31) - Val (txtA21) * Val (txtA33)) / ds) * Val (txtB1) + ((Val (txtA11) * Val (txtA33) - Val ( txtA13) * Val (txtA31)) / ds) * Val (txtB2) + ((Val (txtA13) * Val (txtA21) - Val (txtA11) * Val (txtA23)) / ds) * Val (txtB3))
txtMOMZ.Text = (((Val (txtA21) * Val (txtA32) - Val (txtA22) * Val (txtA31)) / ds) * Val (txtB1) + ((Val (txtA12) * Val (txtA31) - Val ( txtA11) * Val (txtA32)) / ds) * Val (txtB2) + ((Val (txtA11) * Val (txtA22) - Val (txtA12) * Val (txtA21)) / ds) * Val (txtB3))
End If
If Val (txtA11) = 0 Then
Dim gg As Byte
gg = MsgBox ("Вирішити дану систему методом Гаусса неможливо. Поміняйте рівняння місцями, і спробуйте знову", 48, "Коефіцієнт при х у першому рівнянні дорівнює 0")
Else
s1 = ((Val (txtB3) * Val (txtA11)) - (Val (txtB1) * Val (txtA31)))
s2 = ((Val (txtA22) * Val (txtA11)) - (Val (txtA12) * Val (txtA21)))
s3 = ((Val (txtB2) * Val (txtA11)) - (Val (txtB1) * Val (txtA21)))
s4 = ​​((Val (txtA32) * Val (txtA11)) - (Val (txtA12) * Val (txtA31)))
s5 = ((Val (txtA33) * Val (txtA11)) - (Val (txtA12) * Val (txtA31)))
s6 = s2
s7 = ((Val (txtA23) * Val (txtA11)) - (Val (txtA13) * Val (txtA21)))
s8 = s4
s12 = s1 * s2
s34 = s3 * s4
s56 = s5 * s6
s78 = s7 * s8
sh = s12 - s34
sz = s56 - s78
If sz = 0 Then
Dim з As Byte
з = MsgBox ("Ділити на нуль не можна.", 48, "Помилка")
Else
txtMGZ.Text = (sh / sz)
End If
sy1 = s3
sy2 = s2
sy3 = ((Val (txtA23) * Val (txtA11)) - (Val (txtA13) * Val (txtA21)))
sy4 = s2
sy12 = (sy1) / (sy2)
sy34 = (sy3) / (sy4)
txtMGY.Text = ((sy12) - ((sy34) * (sh / sz)))
sx1 = ((Val (txtB1)) / (Val (txtA11)))
sx2 = ((Val (txtA13)) / (Val (txtA11)))
sx3 = ((Val (txtA12)) / (Val (txtA11)))
txtMGX.Text = ((sx1) - ((sx2) * (sh / sz)) - ((sx3) * ((sy12) - ((sy34) * (sh / sz )))))
End If
End Sub
Private Sub cmdExit_Click ()
Dim a As Byte
a = MsgBox ("Хочете вийти? ", 33," Вихід ")
If a = 1 Then
End
End If
End Sub

Користь запровадження розрахунків.
Величезна кількість чисельних методів ставить актуальною завданням не стільки створення нових, скільки дослідження та класифікацію старих, виявлення кращих. Аналіз впливу помилок показав, що між кращими методами немає принципової різниці з точки зору стійкості до помилок округлення. Створення потужних комп'ютерів істотно послабило значення відмінності між методами (у таких характеристиках, як обсяг необхідної пам'яті, кількість арифметичних операцій). У цих умови найбільш переважними стають ті методи, які не дуже відрізняються від кращих по швидкості і зручності реалізації на комп'ютерах, дозволяють вирішувати широкий клас задач як добре, так і погано обумовлених і давати при цьому оцінку точності обчислювального рішення.
У MathCAD і Excel чисельні методи являють собою ті ж самі загальноприйняті ручні розрахунки, але що їх не людиною, а комп'ютером, що знижує можливість помилки до нуля. Програма на Visual Basic набагато спрощує завдання. За допомогою одного разу створеної програми можна розв'язувати системи лінійних рівнянь, вводячи мінімум значень. Також ця програма може бути використана не тільки вами, а й простими користувачами.

III. Література
1) М. Додж, К. Кіната, К. Стінсон "Ефективна робота в Microsoft Excel 97", видавництво "Пітер"; Санкт-Петербург, 1998р.
2) Є.К. Овчаренко, О.П. Ільїна, Є.В. Балибердін "Фінансово - економічні розрахунки в Excel", Москва, 1999 р.
3) Йорг шиб, Excel 7,0: Сотні корисних рецептів, Дюссельдорф-Київ-Москва-Санкт-Петербург, 1997 р.
4) Симонович С.В. та ін Інформатика Базовий курс: Учеб, для технічних вузів. СПБ: Вид. «Пітер», 2004.-640с
5) Каліткін М.М. та ін Чисельні методи. М.: Наука, 1982
6) Турчак Л.І. Основи чисельних методів. М.: Наука, 1987
7) Дьяконов В.П. Система MathCAD. М.: Радіо і зв'язок, 1993
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
194.5кб. | скачати


Схожі роботи:
Ітераційні методи розв`язання систем лінійних алгебраїчних рівнянь
Прямі методи розв`язання систем лінійних алгебраїчних рівнянь
Точні методи розв`язання систем лінійних алгебраїчних рівнянь СЛАР
Розв язання систем лінійних рівнянь методом Гауса
Автоматизація розв`язання систем лінійних алгебраїчних рівнянь
Розробка програми для розв`язання систем лінійних рівнянь
Ітераційні методи розв`язання системи лінійних алгебраїчних рівнянь
Методи розв`язання алгебраїчних рівнянь
Методи розв`язання алгебраїчних рівнянь 2
© Усі права захищені
написати до нас